#pragma once


namespace App {
    class DocumentObject;
}

namespace Gui {
    class Control {
    public:
    
    };
    namespace TaskView {
        class  TaskDialog {
        public:
            void setDocumentName(const char* ch){}
        };
    }
 


}
namespace SketcherGui {
    class ViewProviderSketch;

    /// simulation dialog for the TaskView
    class  TaskDlgEditSketch : public Gui::TaskView::TaskDialog {
    public:
        TaskDlgEditSketch(ViewProviderSketch *sketchView){}
        ViewProviderSketch* getSketchView() const
        { return nullptr; }
    };
    class TaskSketcherValidation : public Gui::TaskView::TaskDialog {
        public:
        TaskSketcherValidation(App::DocumentObject* Obj){}
        ~TaskSketcherValidation(){}
    };
    class SketcherValidation : public Gui::TaskView::TaskDialog {
        public:
        SketcherValidation(App::DocumentObject* Obj, QWidget* parent = nullptr){}
    };
}
namespace Gui {
    class  ControlSingleton {
    public:
        static ControlSingleton& instance()
        {
            static ControlSingleton instance;
            return instance;
        }
        Gui::TaskView::TaskDialog* activeDialog() const
        {
            return nullptr;
        }

        void reject(){}
        void showDialog(Gui::TaskView::TaskDialog* task_sketcher_validation) { }

        void closeDialog(){}
    };
    /// Get the global instance
    inline ControlSingleton& Control()
    {
        return ControlSingleton::instance();
    }
}